// 导出创建路由实例
import { createRouter,createWebHashHistory ,RouteRecordRaw} from "vue-router";
// 把store导入
import {store} from '@/store/index';
// 导入pinia的创建pinia
import {createPinia} from 'pinia';
// 创建store在全局使用
// const store = useStore(createPinia());
import { useRoute } from "vue-router";

// 导入进度条插件
import NProgress from 'nprogress';
// 创建路由信息
const routes:Array<RouteRecordRaw> = [
    {
        // 地址
        path: '/',
        // 名称
        name: 'templateVue',
        // 路由的组件
        component: () => import('@/views/templateVue/index.vue'),
        // 路由元信息
        meta: {
            isLogin: true,
            title: null
        },
        redirect:'/home',
        // 子路由
        children:[
           {
            path:'/', 
            name:'home',
            // 路由辕信息

            meta:{
                isLogin:true,
                title: '首页'
            },
            // children:[],
            component:()=>import('@/views/home/index.vue')
           },
           {
            path: '/pms/product',
            name: 'product',
            component: () => import('@/views/pms/product.vue'),
            meta: {
                isLogin: true,
                title: '商品列表'
            }
        },
        {
            path: '/ums/admin',
            name: 'admin',
            component: () => import('@/views/ums/admin/index.vue'),
            meta: {
                isLogin: true,
                title: '用户列表'
            }
        }
        ,
        {
            path: '/pms/productCate',
            name: 'category',
            component: () => import('@/views/pms/productCate.vue'),
            meta: {
                isLogin: true,
                title: '商品分类'
            }
        },
        {
            path: '/pms/addProductCate',
            name: 'addProductCate',
            component: () => import('@/views/pms/addProductCate.vue'),
            meta: {
                isLogin: true,
                title: '商品添加'
            }
        },
        {
            path: '/pms/productCate/:id',
            name: 'parentId',
            component: () => import('@/views/pms/parentId.vue'),
            meta: {
                isLogin: true,
                title: '商品分类'
            }
        },
        {
            path: '/pms/editproductCatitity',
            name: 'editproductCatitity',
            component: () => import('@/views/pms/editproductCatity.vue'),
            meta: {
                isLogin: true,
                title: '商品编辑'
            }
        }
        ]
    },
    // 登录
    {
        // 地址
        path: '/login',
        // 名称
        name: 'login',
        // 路由的组件
        component: () => import('@/views/user/login.vue'),
        // 路由元信息
        meta: {
            isLogin: false,
            title: '登录'
        }
    },
    {
        // 匹配所有没有注册的路由，都要跳转当前页面
        path:'/:pathMatch(.*)*',
        name:'notfound',
       meta:{
        isLogin:false,
        title:'Not Found'
       },
        component:()=>import('@/views/notfound/index.vue')
    }
]

// 创建路由实例
const router = createRouter({
    routes,
    history: createWebHashHistory()
})
// 前置路由守卫
router.beforeEach((to,from)=>{
    // vue-router 4 没有第三个参数next
    // 判断要去的路由是否需要登录
    // 开启进度条
    NProgress.start();
    if(to.meta.isLogin){
        // 判断用户是否已经登录
        if(store.token === null){
            // 返回一个对象，代表重定向去往的页面
            
            return{
                path:'/login'
            }
        }
    }
})
// 导航后置守卫
router.afterEach((to,from)=>{
    NProgress.done();
})
// 导出router实例
export default router
